The present invention relates to a method and apparatus for encoding video sequences. In particular, the present invention relates to a method and apparatus for quantization step size determination for compression of video signals.
Methods for encoding moving pictures or video had been developed for efficient transmission and storage. A current art of such encoding methods is found in MPEG2 Test Model 5, ISO/IEC JTC1/SC29/WG11/NO400, April 1993, and the disclosure of that document is hereby expressly incorporated herein by reference. In this method, an input video sequence is organized into sequence layer, group-of-pictures, pictures, slices, macroblocks, and finally block layer. Each picture in a group-of-pictures will be coded according to its determined picture coding type.
The picture coding types used in the MPEG2 Test Model 5 include intra-coded picture (I-picture), predictive-coded picture (P-picture), and bi-directionally predictive-coded picture (B-picture). The I-pictures are used mainly for random access or scene update. The P-pictures use forward motion predictive coding with reference to previously coded I- or P-pictures (anchor pictures), and the B-pictures use both forward and backward motion predictive/interpolative coding with reference to previously coded I- or P-pictures. A group of pictures (GOP) is formed in encoded order starting with an I-picture and ending with the picture before the next I-picture in the sequence.
A picture is partitioned into smaller and non-overlapping blocks of pixel data called macroblocks (MB) before encoding. Each MB from a P- or B-picture is subjected to a motion estimation process in which forward motion vectors, and backward motion vectors for the case of a B-picture MB, are determined using reference pictures from a frame buffer. With the determined motion vectors, motion compensation is performed where in the intra- or inter-picture prediction mode of the MB is first determined according to the accuracy of the motion vectors found, followed by generating the necessary predicted MB.
The predicted MB is then subjected to discrete cosine transform (DCT) and quantization of the DCT coefficients based on quantization matrices and quantization step-size. The quantized DCT coefficients of the MB is then run-length encoded with variable length codes (VLC) and multiplexed with additional information such as selected motion vectors, MB coding modes, quantization step-size, and/or picture and sequence information, to form the output bitstream.
Local decoding is performed by inverse quantizing the quantized DCT coefficients, followed by inverse DCT, and motion compensation. Local decoding is performed such that the reference pictures used in the motion compensation are identical to those used by any external decoder.
The quantization step-size (QS) used for quantizing the DCT coefficients of each MB has direct impact on the number of bits produced at the output of run-length VLC encoding process, and therefore the average output bit rate. It has also a direct impact on the encoding quality, which represents the output picture quality at the corresponding decoder. In general, larger QS generates lower output bit rate and lower encoding quality. In order to control output bit rate and picture quality so that the resulting bitstream can satisfy channel bandwidth or storage limitation as well as quality requirements, rate control and quantization control algorithms are used.
Some methods for rate control and quantization control can be found in the above mentioned MPEG-2 Test Model 5. These methods comprise generally a bit allocation process, a rate control process, and an adaptive quantization process. In the bit allocation process, a target number of bits is assigned for a new picture to be coded according to a number of previously determined and pre-set parameters. The rate control step then calculates a reference quantization step-size for each MB based on the target bits for the picture and the number of bits already used from the target bits in encoding MBs from that picture. In the adaptive quantization process, the calculated reference quantization step-size is scaled according to local activities of the MB, and an average MB activity determined from the current or a previously coded picture. This scaling is done according to a level of masking effects of coding noise by human perception for MB with high or low activities within a picture. A video buffer verifier (VBV) may also be employed in such a way that underflow and overflow of the decoder input buffer are prevented as required by the MPEG standard to ensure a target bit rate is maintained.
Coding efficiency, which can be measured in terms of bit-rate saving or encoding picture quality improvement, is a key design issue for video encoder systems. An improvement in coding efficiency will have a large impact in communication or storage costs saving in a long run.
While various methods for enhancing coding efficiency may be developed, it is necessary to consider their impacts on implementation cost in particular when the systems are to be broadly used. Furthermore, it is desired that such methods for encoding should not introduce incompatibility problems inter-operating with decoders that are known to date (for example the MPEG video decoders).
It is therefore an object of the present invention to provide a method or apparatus for use in a video encoder to enhance its coding efficiency.
In accordance with the present invention, there is provided a video encoder for encoding sequences of images comprising intra-coding pictures and predictive-coding pictures into an encoded output bitstream, including:
an encoding processor for encoding each image of a sequence by partitioning, the image in to a plurality of macroblocks, performing necessary motion compensation and estimation and an orthogonal transform on each macroblock, and quantizing the transform coefficients according to a quantization step-size for incorporation in the output bitstream;
a conditional masking processor which is adapted to process macroblocks of predictive coding pictures to determine if each macroblock belongs to a significant motion or scene update region of the corresponding image based upon a comparison of a prediction activity of the macroblock and an average prediction activity for a previously coded picture, and determine a conditional masking factor based on the determination, the conditional masking processor including a prediction activity averaging processor for determining an average prediction activity for a previously encoded image; and
a quantization step-size processor coupled to receive the conditional masking factor from the conditional masking processor and generate a quantization step-size value, based on a reference quantization step-size and the conditional masking factor, for use by the encoding processor in encoding each macroblock;
wherein the predictive-coding pictures of the pictures of the image sequence include mono-directional predictive coding pictures (P-pictures) and bi-directional predictive coding pictures (B-pictures), and wherein the prediction activity averaging processor determines an average prediction activity for each type of predictive coding picture and wherein for a macroblock from a P-picture, a value for the conditional masking factor is selected by said conditional masking processor from between first and second values according to a comparison between the macroblock prediction activity and the P-picture average prediction activity, and wherein for a macroblock from a B-picture, a value for the conditional masking factor is selected by said conditional masking processor from between third and fourth values according to a comparison between the macroblock prediction activity and the B-picture average prediction activity.
The present invention also provides a method for use in video encoding for encoding sequences of images comprising intra-coding pictures and predictive-coding pictures into an encoded output bitstream, including the steps of:
partitioning images into a plurality of macroblocks;
processing macroblocks of predictive-coding pictures to determine if each macroblock belongs to a significant motion or scene update region of the corresponding image, based upon a comparison of a prediction activity of the macroblock and an average prediction activity for a previously coded picture and determining a corresponding conditional masking factor;
generating a quantization step-size value based on a reference quantization step-size and the conditional masking factor; and
encoding each image by performing necessary motion compensation and estimation and an orthogonal transform on each macroblock, and quantizing the transform coefficients according to the generated quantization step-size, for incorporation in the output bitstream
wherein the predictive-coding pictures of the image sequence include mono-directional predictive coding pictures (P-pictures) and bi-directional predictive coding pictures (B-pictures), and wherein a record is maintained of the average prediction activity for each type of predictive coding picture and wherein for a macroblock from a P-picture, a value for the conditional masking factor is selected from between first and second values according to a comparison between the macroblock prediction activity and the P-picture average prediction activity, and wherein for a macroblock from a B-picture, a value for the conditional masking factor is selected from between third and fourth values according to a comparison between the macroblock prediction activity and the B-picture average prediction activity.
Embodiments of the present invention make use of a conditional masking method to take advantage of the fact that P-pictures are more important than B-pictures in terms of motion and scene updates as coding noise in such updates are likely propagated by P-pictures.
The masking can be applied conditionally to motion/scene update regions of a picture such that coding noise is reduced and therefore bits are saved from less propagation of this noise. The conditional masking method can also make use of the fact that these updates attract visual attention and should be coded with less distortions.
Before encoding each macroblock of a picture from an input video sequence, a video encoder with conditional masking according to an embodiment of the present invention determines if the macroblock type belongs to a significant motion or scene update region. A conditional masking factor is then determined for the macroblock based on the determined macroblock type and the picture coding type.
The conditional masking factor is combined with a macroblock reference quantization step-size which may be calculated using conventional methods based on bit allocation and bit utilization, and an optional activity masking factor based on activity level of the macroblock and/or its surrounding region to form the final quantization step-size for coding of the macroblock.
The video encoder may utilize motion estimation, motion compensation, discrete cosine transform coding, and run-length encoding with variable length codes as video compression techniques.